﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class Ylevaatus : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatus {
        
        private string @__yvLiik;
        
        private string @__yvKp;
        
        private string @__jargmYvKp;
        
        private string @__yvMarkus;
        
        private Ylevaatus.IRikkedType @__rikked;
        
        private string @__riketeInfo;
        
        public Ylevaatus() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public Ylevaatus(string @yvLiik, string @yvKp, string @jargmYvKp, string @yvMarkus, Ylevaatus.IRikkedType @rikked, string @riketeInfo) {
            this.@__yvLiik = @yvLiik;
            this.@__yvKp = @yvKp;
            this.@__jargmYvKp = @jargmYvKp;
            this.@__yvMarkus = @yvMarkus;
            this.@__rikked = @rikked;
            this.@__riketeInfo = @riketeInfo;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected Ylevaatus(IYlevaatus @ylevaatus) {
            this.@__yvLiik = @ylevaatus.YvLiik;
            this.@__yvKp = @ylevaatus.YvKp;
            this.@__jargmYvKp = @ylevaatus.JargmYvKp;
            this.@__yvMarkus = @ylevaatus.YvMarkus;
            this.@__rikked = @ylevaatus.Rikked;
            this.@__riketeInfo = @ylevaatus.RiketeInfo;
        }
        
        public virtual string YvLiik {
            get {
                return this.@__yvLiik;
            }
            set {
                this.@__yvLiik = value;
            }
        }
        
        public virtual string YvKp {
            get {
                return this.@__yvKp;
            }
            set {
                this.@__yvKp = value;
            }
        }
        
        public virtual string JargmYvKp {
            get {
                return this.@__jargmYvKp;
            }
            set {
                this.@__jargmYvKp = value;
            }
        }
        
        public virtual string YvMarkus {
            get {
                return this.@__yvMarkus;
            }
            set {
                this.@__yvMarkus = value;
            }
        }
        
        public virtual Ylevaatus.IRikkedType Rikked {
            get {
                return this.@__rikked;
            }
            set {
                this.@__rikked = value;
            }
        }
        
        public virtual string RiketeInfo {
            get {
                return this.@__riketeInfo;
            }
            set {
                this.@__riketeInfo = value;
            }
        }
        
        public partial class RikkedType : IRikkedType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatusRike> @__rike = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatusRike>();
            
            public RikkedType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public RikkedType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatusRike> @rike) {
                this.@__rike = @rike;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected RikkedType(IRikkedType @rikkedType) {
                this.@__rike = @rikkedType.Rike;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatusRike> Rike {
                get {
                    return this.@__rike;
                }
                set {
                    this.@__rike = value;
                }
            }
        }
        
        public interface IRikkedType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatusRike> Rike {
                get;
                set;
            }
        }
    }
}
